import { type ActiveInfo } from '@/types/homeTable.ts';
import { ActiveTable } from '@/types/table';

// 创建一个组合式API函数，用于管理和更新当前活动板块及其市场信息
export default () => {
  // 当前活动板块的代码
  const activeBlockCode = ref('');
  // 当前活动板块的市场
  const activeBlockMarketId = ref('');
  // 当前选中的内容
  const activeSelection = ref('');
  // 当前选中内容的数据
  const activeSelectionData = ref({});
  // 默认的活动板块信息对象
  const defaultActiveInfo = { rank: 0, rankChange: 0 };
  // 当前活动板块信息数组
  const activeInfoArr = ref<ActiveInfo[]>(new Array(3).fill(defaultActiveInfo));

  // 初始化当前活动板块及其市场信息
  const initActiveBlock = () => {
    // 清空当前活动板块代码
    activeBlockCode.value = '';
    // 重置当前活动板块信息数组为默认值
  };
  activeInfoArr.value = new Array(3).fill(defaultActiveInfo);

  // 设置当前活动板块及其市场信息
  const setActiveBlock = ({ code, name, market, title }: ActiveTable) => {
    // 设置当前活动板块代码
    activeBlockCode.value = code;
    // 设置当前活动板块市场
    activeBlockMarketId.value = market;
    setSelection({ code, name, market, title });
  };

  const setSelection = ({ code, name, market, title }: ActiveTable) => {
    activeSelection.value = `${title}-${name}`;
    activeSelectionData.value = {
      code,
      name,
      market,
      indicate: `${title}指标`
    };
  };

  const clearPrimarySelection = () => {
    activeSelection.value = '';
    activeSelectionData.value = {};
  };

  // 返回当前活动板块及其市场信息相关的方法和数据
  return {
    activeBlockCode,
    activeBlockMarketId,
    activeSelection,
    activeSelectionData,
    activeInfoArr,
    initActiveBlock,
    setActiveBlock,
    setSelection,
    clearPrimarySelection
  };
};
